import axios from 'axios'
import {
	Message
} from 'element-ui'
import store from '@/store'
import {
	getToken
} from '@/utils/auth'

const basURL = `${window.location.origin}/zhnydigitalApi/`
// create an axios instance
const service = axios.create({
  // baseURL: basURL,
	// baseURL: 'http://101.132.105.177:28088/', //测试服务器
  // baseURL: 'http://101.132.105.177/zhnydigitalApi/', //打包服务器
  baseURL: 'http://192.168.13.10:26060', //本地服务器
	// baseURL: 'http://39.108.53.73:8010/tshhrqApi/', //正式服务器
	// withCredentials: true, // send cookies when cross-domain requests
	timeout: 200000 // request timeout // 请求时间超过 5s 视为错误
})

// request interceptor
service.interceptors.request.use(
	config => {
		// 请求前处理
		// if (config.apiType == 'gcxm') {
    //   config.url = '/gcxm' + config.url
    //   // if (store.getters.token) {
    //   //   config.headers['Token'] = getRealToken()
    //   // }
    // } else {
    //   config.url = process.env.VUE_APP_BASE_API + config.url
    // }
		if (store.getters.token) {
			// 为请求头添加 token
			config.headers['Token'] = getToken()
		}
		// config.headers['Content-Type'] = 'application/json'
		return config
	},
	error => {
		// do something with request error
		console.log(error) // for debug
		return Promise.reject(error)
	}
)

// response interceptor
service.interceptors.response.use(
	/**
	 * 如果您想获取http信息（例如标题或状态）
	 * 请返回响应=> 响应
	 */
	/**
	 * 通过自定义代码确定请求状态
	 * 这只是一个例子
	 * 您也可以通过HTTP状态代码来判断状态
	 */
	response => {
		const res = response.data
		//如果自定义代码不是 20000，则将其判断为错误。
		if (res.code !== 0) {
			Message({
				message: res.msg || '请求超时',
				type: 'error',
				duration: 1000
			})
		}

		return response.data
		//    // 这里的返回码根据自己的业务逻辑进行调整，例如 token 过期
		// //    if (res.code === 500 || res.code === 405) {
		// //      // to re-login
		// //      MessageBox.confirm('登录信息已过期，请重新登录', '确认', {
		// //        confirmButtonText: '重新登录',
		// //        cancelButtonText: '取消',
		// //        type: 'warning'
		// //      }).then(() => {
		// // //清空
		// //        store.dispatch('user/resetToken').then(() => {
		// //          location.reload()  //触发守卫
		// //        })
		// //      })
		// //    }
		//    // return Promise.reject(new Error(res.msg || 'Error'))
		//  return res
		//  } else {
		//    return res
		//  }
	},
	error => {
		console.log('err' + error) // for debug
		// Message({
		// 	message: error.msg,
		// 	type: 'error',
		// 	duration: 1000
		// })
		return Promise.reject(error)
	}
)

export default service
